The
HTML and the code used in the demo, can be found at the link below.
http://csharp-video-tutorials.blogspot.com/
2013/04/export-gridview-to-pdf-in-aspnet-part-58
.html
Link for csharp, asp.net, ado.net, dotnet basics and sql server video tutorial playlists
http://www.youtube.com/user/kudvenkat/playlists
In this video, we will discuss about exporting gridview data to
PDF.
Step 1:
Create an asp.net web application project.
Step 2:
Drag and drop a gridview control and a button control on webform1
.aspx. Autoformat the gridview control to use "BrownSugar" scheme.
Double click on the button control, to generate click event handler method.
Step 3: To generate
PDF documents we will be using open source assembly - iTextSharp
.dll. This assembly can be downloaded from http://sourceforge.net/projects/itextsharp. After you download the assembly, add a reference to it, from your web application.
a) In
Solution Explorer, right click on the "References" folder and select "Add
Reference"
b) Browse to the folder where you have downloaded the assembly and
Click OK.
Step 4: Add the following "USING" statements, in your code-behind file.
using
System;
using System.
Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.
Data.SqlClient;
using System.Data;
using System.Configuration;
using System.IO;
using iTextSharp
.text;
using iTextSharp.text
.pdf;
using iTextSharp.text.html.simpleparser;
Step 5:
Copy and paste the following code. The code is well commented and is self-explanatory.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridViewData();
}
}
//
ADO.NET code to retrieve data from database
private void BindGridViewData()
{
string CS = ConfigurationManager.ConnectionStrings["
DBCS"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
SqlDataAdapter da = new SqlDataAdapter("
Select * from tblEmployee", con);
DataSet ds = new DataSet();
da.
Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
int columnsCount = GridView1.HeaderRow.Cells.
Count;
// Create the PDF
Table specifying the number of columns
PdfPTable pdfTable = new PdfPTable(columnsCount);
//
Loop thru each cell in GrdiView header row
foreach(TableCell gridViewHeaderCell in GridView1.HeaderRow.Cells)
{
// Create the
Font Object for PDF document
Font font = new Font();
// Set the font color to GridView header row font color
font.
Color = new BaseColor(GridView1.HeaderStyle.ForeColor);
// Create the PDF cell, specifying the text and font
PdfPCell pdfCell = new PdfPCell(new
Phrase(gridViewHeaderCell.
Text, font));
// Set the PDF cell backgroundcolor to GridView header row BackgroundColor color
pdfCell.BackgroundColor = new BaseColor(GridView1.HeaderStyle.BackColor);
// Add the cell to PDF table
pdfTable.AddCell(pdfCell);
}
// Loop thru each datarow in GrdiView
foreach (GridViewRow gridViewRow in GridView1.Rows)
{
if (gridViewRow.RowType == DataControlRowType.DataRow)
{
// Loop thru each cell in GrdiView data row
foreach (TableCell gridViewCell in gridViewRow.Cells)
{
Font font = new Font();
font.Color = new BaseColor(GridView1.RowStyle.ForeColor);
PdfPCell pdfCell = new PdfPCell(new Phrase(gridViewCell.Text, font));
pdfCell.BackgroundColor = new BaseColor(GridView1.RowStyle.BackColor);
pdfTable.AddCell(pdfCell);
}
}
}
// Create the PDF document specifying page size and margins
Document pdfDocument = new Document(PageSize.A4, 10f, 10f, 10f, 10f);
// Roate page using
Rotate()
function, if you want in
Landscape
// pdfDocument.SetPageSize(PageSize.A4.Rotate());
// Using PageSize.A4_LANDSCAPE may not work as expected
// Document pdfDocument = new Document(PageSize.A4_LANDSCAPE, 10f, 10f, 10f, 10f);
PdfWriter.GetInstance(pdfDocument,
Response.OutputStream);
pdfDocument.
Open();
pdfDocument.Add(pdfTable);
pdfDocument.
Close();
Response.ContentType = "application/pdf";
Response.AppendHeader("content-disposition",
"attachment;filename=Employees.pdf");
Response.Write(pdfDocument);
Response.
Flush();
Response.End();
}
At this
point, run the application and click on the button. The data gets exported to PDF as expected. If you are using
Google chrome as your browser, you may get a browser warning stating - this type of file can harm your computer do you want to keep Employees.pdf anyway? This is a know issue with google chrome.
Internet explorer, works fine.
- published: 18 Apr 2013
- views: 20757